package com.ruoyi.mapper.middlesign;

import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author zeo
 * @explain 中征平台专用公用接口Mapper
 * @date 2021/3/15 16:18
 */
public interface MiddlesignMapper {

    /**
     * 查询核心企业集合
     *
     * @return
     */
    List<Map<String, Object>> findHxqyList();

    /**
     * 查询出B2802所需的明细数据
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> findHistoryData(Map map);

    /**
     * 根据ID查询单条历史数据
     * @param id
     * @return
     */
    Map findHistoryDataById(String id);

    /**
     * 修改历史数据
     * @param map
     * @return
     */
    int updateHistoryDate(Map map);

    /**
     * 推送历史数据至修改表
     * @param map
     * @return
     */
    int insertHistoryData(Map map);

    /**
     * 查询有付款无账款的数据
     *
     * @param CREDITNAME
     * @return
     */
    List<String> findYouFukuanWuZhangKuan(@Param("CREDITNAME") String CREDITNAME, @Param("hxqyName") String hxqyName, @Param("table") String table);

    /**
     * 根据年和供应商找出它们的汇总数据
     *
     * @param years
     * @param CREDITNAME
     * @return
     */
    List<Map<String, Object>> findHistoryDataByYear(@Param("years") String years, @Param("CREDITNAME") String CREDITNAME, @Param("table") String table, @Param("hxqyName") String hxqyName);
    /**
     * 插入历史数据更新时间
     *
     * @param CREDITNO
     * @return
     */
    int insertHistorPushByCreditNo(@Param("CREDITNO") String CREDITNO, @Param("CREDIT_CODE") String CREDIT_CODE, @Param("CREDIT_NAME") String CREDIT_NAME, @Param("hxqyName") String hxqyName,@Param("hxqyCode") String hxqyCode);



    /**
     * 从主表导入B2804到专用表
     *
     * @param CREDIT_NAME
     * @return
     */
    int insertAccountsByName(@Param("CREDIT_NAME") String CREDIT_NAME,@Param("hxqyName") String hxqyName);
    /**
     * 查询出B2804所需的接受账款数据
     * @param map
     * @return
     */
    List<Map<String, Object>> findAccountsByName(Map map);
    /**
     * 更新B2804推送时间
     * @param CREDIT_CODE
     */
    int updateAccountsPushByCreditNo(String CREDIT_CODE);


    /**
     * 从主表导入B2805到专用表
     * @param CREDIT_NAME
     * @param hxqyName
     * @return
     */
    int insertPaymentByName(@Param("CREDIT_NAME") String CREDIT_NAME,@Param("hxqyName") String hxqyName);
    /**
     * 查询出B2805所需的数据
     * @param map
     * @return
     */
    List<Map<String, Object>> findPaymentByName(Map map);
    /**
     * 更新B2805推送时间
     * @param CREDIT_CODE
     */
    int updatePaymentPushByCreditNo(String CREDIT_CODE);

    /**
     * 从主表导入B2806到专用表
     * @param CREDIT_NAME
     * @return
     */
    int insertStockSupplierAccount(String CREDIT_NAME);
    /**
     * 查询出B2806所需的数据
     * @param CREDIT_NAME
     * @return
     */
    List<Map<String, Object>> findStockSupplierAccount(String CREDIT_NAME);
    /**
     * 记录那些数据已推送，每日则过滤这些数据
     * @param list
     * @return
     */
    int updateStockSupplierAccountIsSend(List<String> list);
    /**
     * 更新供应商回款账户数据提交时间
     *
     * @param CREDIT_CODE
     * @return
     */
    int updateSupplierByCreditNo(String CREDIT_CODE);


    /**
     * 从主表导入B2807到专用表
     * @param CREDIT_NAME
     * @param hxqyName
     * @return
     */
    int insertReconciliationData(@Param("CREDIT_NAME") String CREDIT_NAME,@Param("hxqyName") String hxqyName);
    /**
     * 查询B2807数据
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> findReconciliationData(Map map);


    /**
     * 根据ID查询接受账款存量数据
     * @param id
     * @param table
     * @return
     */
    Map getStockDataAccountsById(@Param("id") String id,@Param("table") String table);
    /**
     * 保存接受账款存量数据
     * @param map
     * @return
     */
    int accountsSave(Map map);

    /**
     * 根据ID查询接受付款信息存量数据
     * @return
     */
    Map getStockDataPaymentById(@Param("id") String id,@Param("table") String table);


    /**
     * 保存接受付款信息存量数据
     * @param map
     * @return
     */
    int paymentSave(Map map);

    /**
     * 根据ID查询供应商回款账户数据
     * @return
     */
    Map getSupplierAccountById(String id);

    /**
     * 供应商回款账户数据修改
     * @param map
     * @return
     */
    int stockSupplierAccountSave(Map map);

    /**
     * 修改调账数据
     * @return
     */
    Map getReconciliationById(@Param("id") String id,@Param("table") String table);

    /**
     * 供应商回款账户数据修改
     * @param map
     * @return
     */
    int reconciliationSave(Map map);
}
